home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / plnk081.zip / pilot-link.0.8.1 / include / pi-iambicExpense.hxx < prev    next >
Text File  |  1997-05-23  |  3KB  |  95 lines

  1. #ifndef _IAMBICEXPENSE_HXX    /* -*- C++ -*- */
  2. #define _IAMBICEXPENSE_HXX
  3.  
  4. #include "pi-appinfo.hxx"
  5.  
  6. #define reimburse 0x01
  7. #define receipt 0x02
  8.  
  9. const int IAMBIC_EXPENSE_APP_INFO_SIZE = 512;
  10.  
  11. class iambicExpenseAppInfo_t : public appInfo_t 
  12. {
  13.      category_t _conversionNames;
  14.  
  15.    public:
  16.      iambicExpenseAppInfo_t(void *);
  17.      
  18.      const category_t &conversionNames(void) const { return _conversionNames; }
  19.  
  20.      // You can't install an expense entry yet, but we have to provide this
  21.      // function or the compiler will choke, as the parent defines this as
  22.      // a pure virtual function.
  23.      void *pack(void) { return NULL; }
  24. };
  25.  
  26. class iambicExpenseList_t;        // Forward declaration
  27.  
  28. class iambicExpense_t : public baseApp_t
  29. {
  30.      friend iambicExpenseList_t;
  31.      
  32.      short _flags;
  33.      char *_type;
  34.      char *_paidby;
  35.      char *_payee;
  36.      char *_note;
  37.      double _amount;
  38.      double _milesStart, _milesEnd;
  39.      double _exchangeRate;
  40.      tm _date;
  41.  
  42.      iambicExpense_t *_next;
  43.  
  44.      // Will never get called, but we need the name
  45.      void *internalPack(unsigned char *a) { return NULL; }
  46.      
  47.    public:
  48.      iambicExpense_t(void) : baseApp_t() {
  49.       (void) memset(this, '\0', sizeof(iambicExpense_t));
  50.      }
  51.      iambicExpense_t(void *buf) : baseApp_t() { unpack(buf, 1); }
  52.      iambicExpense_t(void *buf, int attr, recordid_t id, int category)
  53.       : baseApp_t(attr, id, category)
  54.      {
  55.       unpack(buf, 1);
  56.      }
  57.      iambicExpense_t(const iambicExpense_t &);
  58.      
  59.      ~iambicExpense_t();
  60.  
  61.      const char *type(void) const { return _type; }
  62.      const char *paidBy(void) const { return _paidby; }
  63.      const char *paidby(void) const { return _paidby; }
  64.      const char *payee(void) const { return _payee; }
  65.      const char *note(void) const { return _note; }
  66.      double amount(void) const { return _amount; }
  67.      double milesStart(void) const { return _milesStart; }
  68.      double milesEnd(void) const { return _milesEnd; }
  69.      double exchangeRate(void) const { return _exchangeRate; }
  70.      const tm *date(void) const { return &_date; }
  71.  
  72.      void unpack(void *, int = 0);
  73.      
  74.      // We don't let you pack one of these, but we must provide the name
  75.      void *pack(int *a) { return NULL; }
  76.      void *pack(void *a, int *b) { return NULL; }
  77. };
  78.  
  79. class iambicExpenseList_t 
  80. {
  81.      iambicExpense_t *_head;
  82.      
  83.    public:
  84.      iambicExpenseList_t(void) : _head(NULL) {}
  85.      ~iambicExpenseList_t();
  86.      
  87.      iambicExpense_t *first() { return _head; }
  88.      iambicExpense_t *next(iambicExpense_t *ptr) { return ptr->_next; }
  89.  
  90.      void merge(iambicExpense_t &);
  91.      void merge(iambicExpenseList_t &);
  92. };
  93.  
  94. #endif // _IAMBICEXPENSE_HXX
  95.